电脑入米家,让小爱同学随意操控电脑开关机(需主机或软路由) |
您所在的位置:网站首页 › 天猫精灵 wol 开机 电脑 › 电脑入米家,让小爱同学随意操控电脑开关机(需主机或软路由) |
电脑入米家,让小爱同学随意操控电脑开关机
项目地址前言一、效果展示二、环境准备三、巴法平台获取密钥及添加设备;1.注册巴法平台账号2.获取密钥3.添加设备
四、目标电脑设置(网络唤醒+免密SSH)1.网络唤醒设置2.SSH免密登录2.获取Windows10 IP和MAC地址
五、在软路由或Linux上部署Python程序1.Python环境安装(根据自己系统唤醒自行百度/谷歌)2.MQTT Python依赖包安装3.拉取GitHub项目并配置4.测试
六、手机上米家添加其他平台设备七、手机上设置小爱同学自定义控制语1.自定义控制语2.设置Python程序后台运行
八.总结九.参考
项目地址
Github: EthanHome 注意测试指令为python3 wol.py -p hostname,我漏了参数 -p,给很多小伙伴带来困扰表示很抱歉,现已更新 前言我的笔电在家里就是台台式电脑了(半年没有挪过屁股),在公司使用Frp做了内网穿透用于远程控制,但是晚上关机了第二天早上常常忘记开机…好麻烦~ 最近买了个小爱音箱,控制家居方便得很,就心想能不能直接让勤劳的小爱同学帮我开关电脑呢?上网搜搜还真有挺多人搞的哦,有搞头哇,有的是用点灯科技结合Python使用MQTT协议,但是有些是使用ESP32/ESP8266,调试的板子搞不太合适呀,等等…MQTT?Python?我熟!开搞! 一、效果展示1.开机 2.关机 1. Windows10,此PC已开启WOL(网络唤醒)、SSH服务端免密登录功能; 2. PVE/OpenWRT,与目标电脑同网段/网络环境的软路由/家独立已联网主机(Windows/Linux),必备,没有就省流不用看下面了; 三、巴法平台获取密钥及添加设备; 1.注册巴法平台账号巴法平台注册入口, 点击注册; 登录后,在主页点击右上角的控制台,在控制台的左上角复制私钥备用; 点击MQTT设备云,在右边输入ethanpc002(002必须,ethanpc为自定义英文名),点击新建主题,记住主题备用; Ps: 米家小爱支持设备命名规则参考 四、目标电脑设置(网络唤醒+免密SSH) 1.网络唤醒设置由于看官门电脑型号众多,有些需要进入BIOS设置,而我的是笔记本(对于我来说就是个台式了),不用进BIOS设置,度娘和谷歌上面有很多针对的解决方法,我就不细说了,贴一下我的方案: 1.打开设备管理器,点击网络适配器,右键属性,将电源管理的两个勾勾打上; 关机的方法是使用用SSH登录然后执行关机命令,所以需要在软路由上设置免密登录权限; 主要参考的是下面这篇文章: 多台WIN10之间的SSH免密登录 虽然我是将程序部署到PVE的,但是Linux生成SSH密钥的方法和Windows的一样; PS:Windows10默认是没有开启SSH服务端的,需要:应用和功能 → 可选功能 → 添加功能 → OpenSSH服务器 → 安装; 1.PVE生成SSH密钥,无脑回车就行; ssh-keygen -t rsa2.最后生成会显示生成的路径,将.ssh目录下的id_rsa.pub的内容复制出来; 3.在目标电脑的C:\Users\用户名\.ssh目录下的新建文件authorized_keys(无后缀) 4.打开服务,将OpenSSH服务器设置为自动,然后重启一下,搞定! 在PVE上测试连接,ssh 用户名@目标电脑IP,不提示输入密码直接登录即代表成功; 2.获取Windows10 IP和MAC地址网络唤醒和SSH需要获取主机的IP和MAC地址; 网络状态 → 查看网络属性 → 以太网; 我的方案是直接部署到PVE,也装了在OpenWRT,可以提供参考; PVE: apt install python3OpenWRT: opkg update opkg install python3-base opkg install python3-pip opkg install python3 2.MQTT Python依赖包安装 pip3 install -i https://pypi.doubanio.com/simple paho-mqtt 3.拉取GitHub项目并配置 git clone https://github.com/cgy233/EthanHome-WOL.git cd EthanHome-WOL修改wol_mq.py程序,将client_id修改为巴法平台获取的私钥,topic修改为添加设备时设置的主题: broker = 'bemfa.com' port = 9501 # 设备主题 topic = "ethanpc002" # 巴法平台控制台获取的私钥 client_id = ''修改wol_config.ini配置文件,broadcast设置为目标主机的IP地址,mac设置为目标主机的MAC地址: # Save this file as .wol_config.ini in the same directory as wol.py [General] broadcast=你的主机IP地址 [EthanPC] mac=你的主机MAC地址 4.测试在Ethan-WOL目录下执行以下命令: python3 wol_mq.py控制台打印以下信息即代表MQTT连接成功,留着后台别动,先执行手机上的操作; 米家 → 我的 → 其他平台设备 → 添加 → 找到巴法(平台很多,中间部分),输入账号密码绑定,其他平台设备 → 巴法→ 同步设备; PS: esp8266接入米家,小爱同学控制 七、手机上设置小爱同学自定义控制语实测在米家是没办法进入巴法平台的设备控制界面的,点击会显示"设备已失效",然后再Bilibili大学看到个老哥说小爱可以,有暗门!设置好后用手机的是可以用自定义的唤醒词的,但是小爱音箱不行,直接喊设备名例如:开灯/关灯是可以噶; 1.自定义控制语1.小爱语音 → 个人训练 → 添加 → 添加一种说法(“开电脑”,随意)→ 添加操作 → 设备控制 → 巴法平台设备 → 打开灯; 2.小爱语音 → 个人训练 → 添加 → 添加一种说法(“关电脑”,随意)→ 添加操作 → 设备控制 → 巴法平台设备 → 关闭灯; 语音控制一下,Python程序的打印出类似以下结果即代表成功: 3.开电脑: 4.关电脑: 测试通过后,在Ctrl+C退出程序,在EthanHome-WOL目录下输入以下命令将程序挂在后台运行,否则你SSH没了程序就结束了,注意把程序的目录改成你自己的: nohup python3 /root/tools/EthanHome-WOL/wol_mq.py > /root/tools/EthanHome-WOL/wol_mq.log 2>&1 & 八.总结总结以下,其实这是借助接入米家的第三方平台巴法平台开放的MQTT接口,使用Python将MQTT的客户端部署到软路由(Linux)上实现的小功能;小爱音箱也可用,如果巴法平台上添加的设备和我一样的话(002结尾),直接呼小爱同学开灯即开电脑,关灯既关电脑,emmm…这么折腾累不累啊…说实话…还真不累了,在折腾的过程中能学到很多东西,智能语音助手+MQTT,扩展性贼强,这么说吧,你在CMD命令行里面能做的她都能做,再结合以下AHK脚本或者直接写一下BAT脚本,一声:我要派派,直接进入游戏界面(bushi),对于还要上网课的学生来说,喊两声,电脑直接从开机到进入对应的课堂立马搞定,酷~,主要是还能学到很多有趣的东西; 九.参考[^1]在OpenWRT上搭建ssh代理 [^2]多台WIN10之间的SSH免密登录 [^3]如何在 Python 中使用 MQTT [^4]OpenWRT安装Python3 [^5]Wake-On-Lan-Python |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |